package net.lab1024.sa.base.module.support.job.api.domain;

import lombok.Data;
import net.lab1024.sa.base.common.json.serializer.enumeration.EnumSerialize;
import net.lab1024.sa.base.module.support.job.constant.SmartJobTriggerTypeEnum;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 定时任务 vo
 *
 * @author huke
 * @date 2024/6/17 21:30
 */
@Data
public class SmartJobVO {

    // 任务id
    private Integer jobId;

    // 任务名称
    private String jobName;

    // 执行类
    private String jobClass;

    // 枚举字段
    @EnumSerialize(SmartJobTriggerTypeEnum.class)
    private String triggerType;

    // 触发配置
    private String triggerValue;

    // 定时任务参数|可选
    private String param;

    // 是否启用
    private Boolean enabledFlag;

    // 最后一执行时间
    private LocalDateTime lastExecuteTime;

    // 最后一次执行记录id
    private Long lastExecuteLogId;

    // 备注
    private String remark;

    // 排序
    private Integer sort;

    private String updateName;

    private LocalDateTime updateTime;

    private LocalDateTime createTime;

    // 上次执行记录
    private SmartJobLogVO lastJobLog;

    // 未来N次任务执行时间
    private List<LocalDateTime> nextJobExecuteTimeList;
}
